1
Mécanismes de l'appel de méthode
AI035Lesson 13
00:00

En Ruby, un appel de méthode n'est pas un saut statique vers une adresse mémoire ; c'est un événement dynamique d'événement de transmission de message. Quand vous invoquez une méthode, vous envoyez un message à un destinataire. Ce message est composé du nom de la méthode, d'arguments facultatifs et d'une éventuelle association de bloc.

1. Syntaxe d'appel et ambiguïté

Ruby permet une grande flexibilité : Foo.Bar et Foo.Bar() sont identiques. Toutefois, Foo::Bar se réfère généralement à une constante, tandis que Foo::Bar() force un appel de méthode. Les parenthèses sont souvent omises pour créer des expériences similaires aux DSL où les méthodes ressemblent à des propriétés.

2. Découpage des opérateurs

Les opérateurs sont en réalité méthodes redéfinissables. L'expression expr1 + expr2 est du sucre syntaxique pour (expr1).+(expr2). Cela s'applique aux opérateurs unaires (-obj), binaires (a < b), et aux opérateurs suffixes.

destinataireMessage (Méthode)Banc latéral de bloctransférer le contrôle

3. Le mécanisme yield

Les méthodes utilisent yield pour pousser le flux de contrôle dans le bloc associé. En utilisant Kernel.block_given?, une méthode peut décider dynamiquement comment gérer la logique en fonction du contexte de l'appelant.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>